﻿#region << 版 本 注 释 >>
/*
 * ========================================================================
 * Copyright(c) 北京天大天科科技发展有限公司, All Rights Reserved.
 * ========================================================================
 *  
 * 【当前类文件的功能】
 *  
 * CLR版本：4.0.30319.34014
 * 作者：杨朋飞  时间：2015/4/18 9:57:51
 * 文件名：StringExtensionHelper
 * 版本：V1.0.0
 * 
 * 修改者：           时间：               
 * 修改说明：
 * ========================================================================
*/
#endregion

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace YPF_CommonMethod
{
    /// <summary>
    /// 针对字符串的扩展方法
    /// </summary>
    public static class StringExtensionHelper
    {
        #region 指定的正则表达式在传递过来的字符串中是否找到了匹配项

        /// <summary>
        /// 指定的正则表达式在传递过来的字符串中是否找到了匹配项_by韩迎龙(kencery)
        /// </summary>
        /// <param name="value">搜索匹配项的字符串</param>
        /// <param name="regex">匹配的正则表达式模式</param>
        /// <returns>如果正则表达式找到匹配项，则为true,否则为false</returns>
        public static bool IsMatch(this string value, string regex)
        {
            return value != null && Regex.IsMatch(value, regex);
        }

        #endregion


        #region 在指定的输入字符串中搜索指定的正则表达式的第一个匹配项_by韩迎龙(kencery)

        /// <summary>
        /// 在指定的输入字符串中搜索指定的正则表达式的第一个匹配项_by韩迎龙(kencery)
        /// </summary>
        /// <param name="value">要搜索匹配项的字符串</param>
        /// <param name="pattern">要配的匹正则表达式对象</param>
        /// <returns>返回一个对象，包含有关匹配项的信息</returns>
        public static string Match(this string value, string pattern)
        {
            return value == null ? null : Regex.Match(value, pattern).Value;
        }

        #endregion

        #region 在指定的输入字符串中搜索指定的正则表达式的所有匹配项的字符串集合_by韩迎龙(kencery)

        /// <summary>
        /// 在指定的输入字符串中搜索指定的正则表达式的所有匹配项的字符串集合_by韩迎龙(kencery)
        /// </summary>
        /// <param name="value">要搜索匹配项的字符串</param>
        /// <param name="pattern">要匹配的正则表达式模式</param>
        /// <returns>返回一个集合，</returns>
        public static IEnumerable<string> Matchs(this string value, string pattern)
        {
            if (value == null)
            {
                return new string[] {};
            }
            MatchCollection matchCollection = Regex.Matches(value, pattern);
            //使用Linq返回集合
            var linqCollection = from Match n in matchCollection
                select n.Value;
            return linqCollection;
        }

        #endregion


    }
}
